Skip to main content

Advanced Concepts

This section details how to perform some more advanced modifications to the gem5 source code. You may find this useful when implementing assignment 2, but this is more supplementary information than anything else.

Editor support

Referencing this issue in the SCons repository, there is support to generate a compile_commands.json file for your editor. Currently, I am not sure if there is full feature parity with the clang format, but if you reeeeeeally need/want syntax highlighting and all the editor fanciness, then you will need to determine how to create this file with your setup. If you use neovim, the lsp will automatically source from compile_commands.json if you restart the lsp server after its generation. Same story for emacs. VSCode, JetBrains, [insert your favorite alternative editory here] people, you're on your own.

If you have any topics that are not covered in this section and/or the learning gem5 website then please ask the TA, and we will (most likely) prepare a module for whatever modification and extension that you want to see.